package com.hup.winHolderService.ws.handler;

import com.hup.winHolderService.ws.handler.parser.WsDataParser;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 类似spring 的 {@link GetMapping}, {@link RequestMapping},
 * 用于标记 处理websocket请求(onMessage)数据的方法
 *
 * @author hugan
 * @date 2023/10/8
 */
@Target(value = ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface WsRequestMethod {

    /**
     * api路径
     * 类似RequestMapping的"api路径", 不需要带'/'
     * 要求:0<长度<128
     */
    String value();

    /**
     * true-没有请求入参
     */
    boolean noneRequestData() default false;

    Class<? extends WsDataParser> dataParser() default WsDataParser.class;
}
